#ifndef OPTIONS_ANNEALING__
#define OPTIONS_ANNEALING__

#include "base.h"
#include "options.h"

#include "ticpp/ticpp.h"

/** Nastaveni algoritmu simulovaneho zihani (AnnealingAlgorithm).
 */
class AnnealingOptions: public Options {
public:
	/** Defaultni konstruktor. Vytvori zakladni tridu s predanym zakladnim nastavenim.
	 * \param parent zakladni nastaveni programu
	 */
	AnnealingOptions(Options & parent): Options(parent) {}
	void Read(ticpp::Element * settings);
	void Print();
	std::string GetTitle();
	bool Next();
	/* public members */
	CoolingStrategy cooling; ///< vybrana chladici strategie
	bool all; ///< spustit algoritmus se vsemi moznymi chladicimi strategiemi?
	double alpha; ///< chladici faktor
	double loops; ///< faktor pocatecniho poctu smycek
	double end; ///< koncova teplota
	double accept_ratio; ///< pocatecni pomer prijatych sousednich reseni
	ticpp::Element * initial; ///< nastaveni prvotniho algoritmu
};

#endif
